import type { Router } from 'vue-router'

/**
 * 路由守卫配置
 * 处理路由导航前的逻辑，如页面标题设置、meta信息更新等
 */
export function setupRouteGuards(router: Router) {
  /**
   * 全局前置守卫
   * 在路由跳转前执行
   */
  router.beforeEach((to, from, next) => {
    // 设置页面标题
    document.title = to.meta.title ? `${to.meta.title} - 我的博客` : '我的博客'

    // 设置 meta 描述
    if (to.meta.description) {
      const metaDescription = document.querySelector('meta[name="description"]')
      if (metaDescription) {
        metaDescription.setAttribute('content', to.meta.description as string)
      }
    }

    next()
  })

  /**
   * 全局后置钩子
   * 在路由跳转完成后执行
   */
  router.afterEach((to, from) => {
    // 可以在这里添加页面访问统计、埋点等逻辑
    console.log(`路由跳转: ${from.path} -> ${to.path}`)
  })

  /**
   * 路由错误处理
   */
  router.onError((error) => {
    console.error('路由错误:', error)
    // 可以在这里添加错误上报逻辑
  })
}
